﻿using System;
using System.Collections.Generic;
using System.Text;
using BussinessLogicTecnoPez;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;
using DataAccessTecnoPez;

namespace BussinessLogicTecnoPez.Tipos_Comunes
{
    [Serializable]
    [DBTable("TIPOSMONEDAS")]
    public class TipoMoneda : EntityBase<TipoMoneda>
    {
        private int _idTipoMoneda;
        private string descripcion;
        private decimal cotizacion;
        private bool monedapatron;
        private string simboloMoneda;

        [FriendlyName("Código", true, true, FriendlyName.FilterType.Integer)]
        [DBField("IDTIPOMONEDA", true, true)]
        public int IdTipoMoneda
        {
            get { return _idTipoMoneda; }
            set { _idTipoMoneda = value; }
        }


        [NotNullValidator(MessageTemplate = "Descripción: Debe tener algun valor.")]
        [StringLengthValidator(0, 50, MessageTemplate = "Descripción: Tamaño máximo es de 50 carateres.")]
        [TecnoPezNoEmptyStringValidator("Descripción: Debe tener algun valor.")]
        [FriendlyName("Descripción", true, true, FriendlyName.FilterType.String)]
        [DBField("DESCRIPCION", false, false)]
        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

        [FriendlyName("Cotización", false)]
        [DBField("COTIZACION", false, false)]
        public decimal Cotizacion
        {
            get { return cotizacion; }
            set { cotizacion = value; }
        }

        [FriendlyName("Es patrón", false)]
        [DBField("MONEDAPATRON", false, false)]
        public bool EsPatron
        {
            get { return monedapatron; }
            set { monedapatron = value; }
        }

        [NotNullValidator(MessageTemplate = "Simbolo Moneda: Debe tener algun valor.")]
        [StringLengthValidator(0, 5, MessageTemplate = "Simbolo Moneda: Tamaño máximo es de 5 carateres.")]
        [TecnoPezNoEmptyStringValidator("Simbolo Moneda: Debe tener algun valor.")]
        [FriendlyName("Simbolo Moneda", true)]
        [DBField("SIMBOLOMONEDA", false, false)]
        public string SimboloMoneda
        {
            get { return simboloMoneda; }
            set { simboloMoneda = value; }
        }

        public override string ToString()
        {
            return this.Descripcion;
        }

        public int setNotPatron()
        {
            using (SQL sql = new SQL())
            {
                object[] colData = new object[1];
                colData[0] = "0";
                sql.InitTransaction();
                sql.SqlString = "UPDATE TIPOSMONEDAS SET MONEDAPATRON = ?";
                int res = 0;
                res = sql.ExecuteNonQuery(colData);
                sql.CommitTransaction();
                sql.Close();
                return res;
            }
        }
    }
}